package com.itcast.chapter01.aspectj;

import com.itcast.chapter01.annotation.RegisterAnnotation;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.Signature;
import org.aspectj.lang.annotation.AfterReturning;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.Pointcut;
import org.springframework.stereotype.Component;

/**
 * @author : zjj
 * @date : 2022/9/5 17:49
 */

@Aspect
@Component
public class RegisterPoint {

    @Pointcut("@annotation(registerAnnotation)")
    public void cutPoint(RegisterAnnotation registerAnnotation){

    }

    /**
     * 返回通知,成功返回才会通知
     * @param joinPoint
     */
    @AfterReturning("cutPoint(registerAnnotation)")
    public void beforeAction(JoinPoint joinPoint,RegisterAnnotation registerAnnotation){
        if(registerAnnotation.value().equals("sendEmail")){
            System.out.println("aop的方式 ： 发送Email");
        }else if(registerAnnotation.value().equals("sendSms")){
            System.out.println("aop的方式 ： 发送短信");
        }

    }
}
